package com.boarsoft.boar.batch.service;

/**
 * 批量事件回调接口
 * 
 * @author Mac_J
 *
 */
public interface BatchCallback {

	/**
	 * 挂起事件
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param step
	 *            当前步骤
	 * @param addr
	 *            执行实例IP
	 */
	void onSuspend(String exeId, String step, String addr);

	/**
	 * 执行失败事件
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param step
	 *            当前步骤
	 * @param addr
	 *            执行实例IP
	 * @param error
	 *            错误监息
	 * @param params
	 *            错误监息参数
	 */
	void onFailed(String exeId, String step, String addr, String error, String params);

	/**
	 * 执行成功事件
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param addr
	 *            执行实例IP
	 */
	void onSuccess(String exeId, String addr);

	/**
	 * 执行步进事件
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param step
	 *            当前步骤
	 * @param addr
	 *            执行实例IP
	 */
	void onStep(String exeId, String step, String addr);

	/**
	 * 执行中断事件
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param step
	 *            当前步骤
	 * @param addr
	 *            执行实例IP
	 */
	void onStop(String exeId, String step, String addr);

	/**
	 * 执行超时事件
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param step
	 *            当前步骤
	 * @param addr
	 *            执行实例IP
	 */
	void onTimeout(String exeId, String step, String addr);

	/**
	 * 流程完成排队得以实际执行时触发
	 * 
	 * @param exeId
	 *            执行记录ID
	 * @param addr
	 *            执行实例IP
	 */
	void onBegin(String exeId, String addr);
}
